home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Programmer Disk
/
The Programmer Disk (Microforum).iso
/
xpro
/
qb1
/
pro1
/
simple.bas
< prev
Wrap
BASIC Source File
|
1990-10-26
|
4KB
|
133 lines
' $INCLUDE: 'QBSERIAL.DEC'
DEFINT A-Z
CLS
' The following lines are used to retrieve the driver copyright
X& = DriverCopyright
WHILE (PEEK(X&))
CP$ = CP$ + CHR$(PEEK(X&))
X& = X& + 1
WEND
PRINT CP$
PRINT
CRLF$ = CHR$(13) + CHR$(10)
Port = 1
Length = 8
Parity = 0
Rate& = 9600
HS = 0
' Comm port initilization call format:
' OpenComm Port%, IRQ%, Wordlen%, Parity%, Baudrate&, Handshake%
OpenComm Port, 0, Length, Parity, Rate&, HS
CarrierDetect 1 ' <-- Temporarilly disable UEVENT trip
' to allow data to be transmitted without
' presence of CD signal
ON UEVENT GOSUB CarrierLoss
UEVENT ON
'***************************************************************************
' Your CODE goes here. Heres an example:
' To send data out
Transmit "This is transmitted out the serial port." + CRLF$
Transmit STRING$(25, CHR$(215)) + CRLF$
'To get data from remote (or local) keyboard.
Temp$ = "Enter data: "
PRINT Temp$
Transmit Temp$
Transmit CRLF$
GOSUB KeyboardInput
PRINT
Temp$ = "You entered: " + A$
PRINT Temp$
Transmit Temp$
CarrierDetect 1 ' <-- Re-enable carrier detection. Carrier had
' better be true or UEVENT willl occur on
' next Transmit
Transmit CRLF$
DTRcontrol 0 ' <-- Turn OFF the DTR line
SLEEP 1
DTRcontrol 1 ' <-- Turn ON the DTR line
SLEEP 1
DTRcontrol 0
SLEEP 1
DTRcontrol 1
' Your code ends here
'****************************************************************************
'VERY important ending step - if you forget this, you CRASH sometime later.
'But ONLY restore the vectors if you actually took them, otherwise
'you'll cause a crash for other reasons.
RestoreInt:
CloseComm
END
CarrierLoss:
CLS
Temp$ = "Loss of Carrier has been detected."
PRINT Temp$
GOTO RestoreInt
'Keyboard input scan. Fetches characters from the remote keyboard.
'Echo's characters as enetered. Returns on carriage return.
KeyboardInput:
A$ = ""
InCount = 0
ClearInputBuffer
DO
DO
Hit$ = INKEY$
IF Hit$ <> "" THEN EXIT DO
LOOP UNTIL DataWaiting
I$ = ""
IF Hit$ = "" THEN
DO WHILE DataWaiting
I$ = I$ + CHR$(ReadChar)
LOOP
ELSE
I$ = Hit$
END IF
TookIn = LEN(I$)
IF I$ = CHR$(8) THEN
IF InCount THEN
' Your code to handle Backspace key goes HERE ********
' Dont forget to send the Backspace sequence out to the
' Com port also with Transmit.
' I did not include it because I did not know how every one
' might handle it. I send a Chr$(8) + Chr$(32) + Chr$(8) to
' both the screen and Comm port.
END IF
END IF
IF I$ = CHR$(13) THEN EXIT DO
I$ = UCASE$(I$)
IF I$ > CHR$(&H1F) THEN
Transmit I$
PRINT I$; ' You may need to echo in a different way *******
' Such as if you dont want direct screen writes.
A$ = A$ + I$
InCount = InCount + TookIn
END IF
LOOP
RETURN